/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.copiedfromeclipsesrc;
import org.eclipse.jface.text.Document;
import org.python.pydev.core.docutils.PythonPairMatcher;
import junit.framework.TestCase;
public class PythonPairMatcherTest extends TestCase {
public static void main(String[] args) {
PythonPairMatcherTest test = new PythonPairMatcherTest();
try {
test.setUp();
test.testSearchesOnlyInCurrentStatement();
test.tearDown();
junit.textui.TestRunner.run(PythonPairMatcherTest.class);
} catch (Exception e) {
e.printStackTrace();
}
}
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testMatch() throws Exception {
PythonPairMatcher matcher = getMatcher();
String s = "test (";
assertEquals(5, matcher.searchForOpeningPeer(s.length(), '(', ')', new Document(s)));
s = "test ";
assertEquals(-1, matcher.searchForOpeningPeer(s.length(), '(', ')', new Document(s)));
s = "test () ";
assertEquals(-1, matcher.searchForOpeningPeer(s.length(), '(', ')', new Document(s)));
}
public void testSearchesOnlyInCurrentStatement() throws Exception {
PythonPairMatcher matcher = getMatcher();
String s = "" +
"a = (\n" +
"def m1():\n" +
" b = ()";
assertEquals(-1, matcher.searchForOpeningPeer(s.length(), '(', ')', new Document(s)));
}
public void testMatch1() throws Exception {
PythonPairMatcher matcher = getMatcher();
String s = "\ntest ('[#') ";
assertEquals(-1, matcher.searchForAnyOpeningPeer(s.length(), new Document(s)));
}
public void testMatch2() throws Exception {
PythonPairMatcher matcher = getMatcher();
String s = "\ntest ('''\n[#''') ";
assertEquals(-1, matcher.searchForAnyOpeningPeer(s.length(), new Document(s)));
s = "\ntest ( ";
assertEquals(6, matcher.searchForAnyOpeningPeer(s.length(), new Document(s)));
}
private PythonPairMatcher getMatcher() {
return new PythonPairMatcher(new char[] { '(', ')', '[', ']' });
}
}